package ControleAcademico.Model.Pojo;

import java.util.ArrayList;

public class Turma {
	
	private int id;
	private static int nextid = 1;
	private int ano;
	private int periodo;
	private String local;
	private String horario;
	private int numeroVagas;
	private double somaDeNotas;
	private Disciplina disciplina;
	private ArrayList<Professor> professor;
	private ArrayList<Atividade> atividades;
	private ArrayList<Faltas> faltas;
	
	
	public Turma(int ano, int periodo, String local,
			String horario, int numeroVagas, Disciplina disciplina, ArrayList<Professor> professor) {
	
		this.id=nextid;
		nextid++;
		this.ano = ano;
		this.periodo = periodo;
		this.local = local;
		this.horario = horario;
		this.numeroVagas = numeroVagas;
		this.somaDeNotas = 0.0;
		this.disciplina = disciplina;
		this.professor = new ArrayList<Professor>();
		this.atividades = new ArrayList<Atividade>();
		this.faltas = new ArrayList<Faltas>();
		
		for (Professor professor2 : professor) {
			this.professor.add(professor2);
		}
		
		for (Professor i : professor) {
			i.adicionarTurma(this);
		}
		
		disciplina.adicionarTurma(this);
		
	}
	
	public Turma (int numeroAulas, int ano, int periodo, String local,
				  String horario, int numeroVagas,int id){
		
		this.id = id;
		this.ano = ano;
		this.periodo = periodo;
		this.local = local;
		this.horario = horario;
		this.numeroVagas = numeroVagas;
		this.professor = new ArrayList<Professor>();
		this.atividades = new ArrayList<Atividade>();
		this.faltas = new ArrayList<Faltas>();
		this.somaDeNotas = 0.0;
	}
	
	public int getAno() {
		return ano;
	}
	
	public void setAno(int ano) {
		this.ano = ano;
	}
	
	
	public int getPeriodo() {
		return periodo;
	}
	
	public void setPeriodo(int periodo) {
		this.periodo = periodo;
	}
	
	public String getLocal() {
		return local;
	}
	
	public void setLocal(String local) {
		this.local = local;
	}
	
	public String getHorario() {
		return horario;
	}
	
	public void setHorario(String horario) {
		this.horario = horario;
	}
	
	public int getNumeroVagas() {
		return numeroVagas;
	}
	
	public void setNumeroVagas(int numeroVagas) {
		this.numeroVagas = numeroVagas;
	}
	
	public ArrayList<Professor> getProfessor() {
		return professor;
	}
	
	public void setProfessor(Professor professor){
		this.professor.add(professor);
	}

	public ArrayList<Atividade> getAtividades() {
		return atividades;
	}


	public ArrayList<Faltas> getFaltas() {
		return faltas;
	}
	
	public double getSomaDeNotas (){
		return somaDeNotas;
	}
	
	public void setSomaDeNotas(double somaDeNotas){
		this.somaDeNotas = somaDeNotas;
	}
	
	public String getNomeDisciplina() {
		return disciplina.getNome();
	}

	public Disciplina getDisciplina() {
		return disciplina;
	}
	
	public void setDisciplina(Disciplina disciplina) {
		this.disciplina = disciplina;
	}

	public int getId() {
		return id;
	}
	
	public void adicionarAtividade(Atividade atividade){
		this.atividades.add(atividade);
		this.somaDeNotas = somaDeNotas + atividade.getValor();
	}
		
	public ArrayList<Aluno> getListaDeAlunos(){
		ArrayList<Aluno> alunos = new ArrayList<Aluno>();
		Aluno aluno = null;
		
		for (Faltas i : this.faltas) {
			aluno = i.getAluno();
			alunos.add(aluno);
		}
		
		return alunos;
	}
	
	public void adicionarFaltas(Faltas faltas1){
		this.faltas.add(faltas1);
	}
}